#pragma once
#include "Effect.h"
#include<vector>

using namespace std;

class GbufferEffect :
	public Effect
{
public:
	GbufferEffect(const LPDIRECT3DDEVICE9 device, EffectManager *effMgr, TextureManager *texMgr);
	~GbufferEffect(void);

	void clearGBuffer(ModelMesh *quad, LPDIRECT3DSURFACE9 prevSurf);

	void renderGBuffer(Camera *camera, vector<ModelMesh *> meshes, LPDIRECT3DSURFACE9 prevSurf);

	void combineGBuffer(ModelMesh *quad, LPDIRECT3DSURFACE9 target, LPDIRECT3DSURFACE9 prevSurf);

	void runEffect(void) { };

	void start(LPDIRECT3DSURFACE9 prevSurf);
};
